Hacking It Up

by John Corigliano

<jcorig@udel.edu>

Well, it's back (as if it ever went away)! That age-old battle: Hardware Hacking Rulez/Sux on comp.sys.amiga.programmer. For those of you unfamiliar with this saga there are two distinct groups of programmers in the Amiga community: those who believe you should always use the OS for things like displaying graphics, reading from disk, etc, and those who think it is acceptable to bypass the OS when speed is of the utmost importance.

"Use the OS, Luke"

One person arguing in against Hardware Hacking made what I thought was a very salient point: if the company making the computers (i.e. VisCorp) thought that many programmers were hitting the hardware then they, the computer manufacturer, might be reluctant to upgrade the hardware for fear off disabling too much software.

A Hypothetical Situation

For instance, suppose VisCorp (or whoever) decides to move the BLTCON0 register to a new location. System friendly programs would be unaffected by this move - even those that use the Blitter (via graphics.library function calls). Hoewever, I imagine that quite a few games and demos that program BLTCON0 directly will crash faster than you can say, "What the heck is a 'blitter' anyway?"

So, VisCorp decides to leave BLTCON0 right were it is, even though it means a big performance decrease in graphics operations. That's not good.

Bang Your Head

On the other hand, you'd have to be kinda goofy not too realize that the Amiga hardware is a bit behind the times. And yet Amiga users still want to run a Quake clone on a 1200. It ain't gonna happen! A 68020 does not a Pentium make. So, what's a coder to do? Bang the hardware! Many people feel that the only way to keep the Amiga competetive in the games market is to squeeze every last bit of juice out of her. System calls are slow compared to well written, optimized assembly code. Ergo, hardware banging is required.

The Envelope Please

Well, you're thinking, what's the answer? Is hardware hacking ok or not?. Well, no if you want to write software that is not only compatable with today's machines, but also tomorrow's. Yes, if you want to do stuff that the existing hardware isn't really meant to do. In other words, there is no cut-and-dried sollution...sorry.


Table Of Contents